Business Intelligence (BI) generally refers to software tools used to improve decision-making. These tools are commonly applied to financial, human resource, marketing, sales, customer and supplier analyses. More specifically, these tools can include: reporting and analysis tools to present information, content delivery infrastructure systems for delivery and management of reports and analytics, data warehousing systems for cleansing and consolidating information from disparate sources, and data management systems to collect, store, and manage raw data.
A data warehouse is a repository of an organization's electronically stored data. Data warehouses are designed to facilitate Business Intelligence operations. A data warehouse is typically formed by an Extract, Transform and Load (ETL) process in which data from a source (e.g., a transactional database) is extracted, transformed (e.g., for data standardization or quality control) and loaded into a target (i.e., the data warehouse).
Historical trends provide a powerful source of information on prior business performance, and a potential guide to future behaviour. Business Intelligence systems often analyze historical trends using data warehouses that can be queried against a time dimension. While this provides a basis for analysis, it is limited by the quality of the data that is available, which is often delayed or out of date. It also requires the existence of an explicitly defined time dimension.
Traditional ETL and data warehouse systems do not support agile ad hoc query or report creation. Conventional reporting systems require that an expert design a warehouse; this requires that there is clear prior knowledge of the quantities to be tracked. For example, if a user wants to track the number of staff at a particular grade within an organization, it is useful to know how many were new to that grade in a given month, and how many moved on during the same period. This could be further extended by identifying where the movers went.
Consider the example of a human resource director who wants to know about the career progression of staff over a period of years. In particular, the director wants to know how many people are promoted on an annual basis and what the turnover of staff is at each grade. Existing tools can be used to create a report that shows overall values, such as titles and number of employees for each title. It would be desirable to be able to select a title (e.g., “Engineer”) and request monthly totals for the previous two years. Ideally, this would result in a new panel showing a month-by-month breakdown of the number of employees at the Engineer grade in each month, as well as the numbers leaving and joining that grade. Ideally, one would then be able to find information on those leaving the grade to identify the most likely reasons for moving, e.g. how many were promoted to Senior Engineer, how many left the company, etc.
This information on numbers being promoted could then be feed back into a performance management system, where it could be used to set targets for annual reviews with a view to identifying how many staff should be promoted year by year. Alternatively, it could be used to set recruitment targets.
Thus, it would be desirable to have a tool for the optimized creation of periodic, historic reports where there is no explicitly defined time dimension. Such a tool should utilize real-time data sources, such as transactional databases and work with audit logs to reconstruct an historical view in an efficient manner. The tool should support cumulative or non-cumulative data. More particularly, it would be desirable to provide a mechanism for tracking changes in a result set between time periods in order to identify turnover of members and their origins or destinations outside the result set.